<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /* 创建正则表达式 */
        // 利用RegExp创建
        // var regexp = new RegExp(/123/)
        // console.log(regexp);

        // // 函数字面量创建
        // var reg = /123/;
        // console.log(reg);

        // // test用来检测字符串是否符合正则表达式要求的规范
        // console.log(reg.test(123)); //只要包含123返回的就是true


        /* 边界符^,$ */
        // var re = /abc/ //只要包含abc返回的就是true
        // console.log(re.test('abc')); //true
        // console.log(re.test('abcd')); //true
        // console.log(re.test('aabc')); //true
        // var re1 = /^abc/ //以abc开头返回的就是true，否则false
        // console.log(re1.test('abc')); //true
        // console.log(re1.test('abcd')); //true
        // console.log(re1.test('aabc')); //false
        // var re2 = /abc$/ //以abc结尾的就是true，否则是false
        // console.log(re2.test('abc'));
        // console.log(re2.test('abcd'));
        // console.log(re2.test('aabc'));
        // var re3 = /^abc$/ //精确匹配字符串abc
        // console.log(re3.test('abc'));
        // console.log(re3.test('abcd'));
        // console.log(re3.test('aabc'));


        /* 字符类 */
        // var rg = /[abc]/ //只要包含有a、b、c其中的一个就返回为true
        // console.log(rg.test('andy'));
        // console.log(rg.test('boy'));
        // console.log(rg.test('cao'));
        // console.log(rg.test('red'));
        // var rg1 = /^[abc]$/ //精确匹配a或b或c，其他都是false
        // console.log(rg1.test('a'));
        // console.log(rg1.test('b'));
        // console.log(rg1.test('c'));
        // console.log(rg1.test('abc'));
        // var rg2 = /^[a-z]$/ //精确匹配a-z中任何一个英文字母
        // console.log(rg2.test('a'));
        // console.log(rg2.test('b'));
        // console.log(rg2.test('ab'));
        // console.log(rg2.test('A'));

        //字符组合
        // var reg = /[a-zA-Z0-9]/ //匹配a-z,A-Z,0-9之间的数字或字母任意组合的字符串
        // console.log(reg.test('aJ12'));

        // //取反
        // var rg1 = /[^a-zA-Z0-9]/ //字符串中不能包含a-z,A-Z,0-9
        // console.log(rg1.test('ab2W')); //false
        // console.log(rg1.test('-=-=')); //true


        /* 量词符 */
        //* 可以出现0次或更多次
        var rg = /^[a-z]*$/
        console.log(rg.test(''));
        console.log(rg.test('aaa'));
        console.log(rg.test('akjh'));
        // + 可以出现1次或更多次
        var rg1 = /^[a-z]+$/
        console.log(rg1.test(''));
        console.log(rg1.test('aaa'));
        console.log(rg1.test('akjh'));
        // ? 可以出现0次或者1次
        var rg2 = /^[a-z]?$/
        console.log(rg2.test(''));
        console.log(rg2.test('a'));
        console.log(rg2.test('ab'));
        // {n}可以重复n次
        var rg3 = /^[a-z]{3}$/
        console.log(rg3.test('ads'));
        console.log(rg3.test('adser'));
        // {n,}可以重复n次或更多次
        var rg4 = /^[a-z]{3,}$/
        console.log(rg4.test('ab'));
        console.log(rg4.test('abc'));
        console.log(rg4.test('abasd'));
        // {n,m}可以重复n-m次
        var rg5 = /^[a-z]{3,5}$/
        console.log(rg5.test('aa'));
        console.log(rg5.test('aadh'));
        console.log(rg5.test('aaasfafds'));
    </script>
</body>

</html>